package org.example.biz.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

/**
 * @Title : TrailInfo
 * @Description:
 * @author: libo@juzishuke.com
 * @date: 2023/12/13 18:16
 * @Version:1.0
 */
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@ToString
public class TrailInfo implements Serializable {

    /**
     * 订单号
     */
    private String orderId;
    /**
     * 期数（提前结清时返回的是首期）
     */
    private Integer period;

    /**
     * 总金额: 待还总本金 + 待还总利息 + 待还总逾期费
     */
    private BigDecimal sumAmount;

    /**
     * 待还总本金
     */
    private BigDecimal sumPrincipal;

    /**
     * 待还总利息: 待还总资方利息 + 待还总综合担保服务费
     */
    private BigDecimal sumInterest;

    /**
     * 待还总逾期费: 待还总资方罚息 + 待还总违约金
     */
    private BigDecimal sumOverdueFee;

    /**
     * 待还总资方利息
     */
    private BigDecimal sumCapInterest;

    /**
     * 待还总担保服务费
     */
    private BigDecimal sumGuaranteeServiceFee;

    /**
     * 待还总资方罚息
     */
    private BigDecimal sumCapOverdueFee;

    /**
     * 待还总担保服务违约金
     */
    private BigDecimal sumPenaltyFee;

    /**
     * 平台咨询费
     */
    private BigDecimal sumPlatformServiceFee;

    /**
     * 平台咨询违约金
     */
    private BigDecimal sumPlatformOverdueFee;

    /**
     * 结清金额明细
     */
    private List<TrailInfoItem> list;
}
